package com.hall.dao;

import com.hall.pojo.Userschedule;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository
public interface ScheduleMapper {
    /**
     * 查询当前用户这个日期的日程
     * @param  userschedule 日程对象(用户id,日期)
     * @return 一天的日程对象
     */
    Userschedule findOne(Userschedule userschedule);
    /**
     * 添加一个日期的某个时间段的日程
     * @param  userschedule2 日程对象(用户id,日期,用户姓名,当天的日程配置)
     * @return 结果
     */
    int addOne(Userschedule userschedule2);
    /**
     * 修改更新一个已有时间段日程的状态
     * @param  userschedule3 日程对象(用户id,日期,当天的日程配置)
     * @return 结果
     */
    int updateOne(Userschedule userschedule3);
    /**
     * 查询用户本周与下周的所有日程
     * @param  userid 用户id
     * @param  scheduledate 本周一日期
     * @param  nextFiveday  下周五日期
     * @return 日程集
     */
    List<Userschedule> findAll(@Param("userid") String userid, @Param("scheduledate") String scheduledate,@Param("nextFiveday") String nextFiveday);
    /**
     * 清除选择周的所有日程
     * @param  userschedule4 日程对象(用户id,日期,默认清空后的日程配置)
     * @return 结果
     */
    int clearAll(Userschedule userschedule4);
    /**
     * 查找所有有日程计划的用户
     * @return 结果
     */
    List<String>haveScheduleUser();
    /**
     * 获得有日程用户的当周的5天日程
     * @param  userid 用户id
     * @param  scheduledate 当周周一日期
     * @return 当周日程集合
     */
    List<Userschedule> GetNextSchedule(@Param("userid")String userid,@Param("scheduledate") String scheduledate);
    /**
     * 定时器填充有日程用户的下一周日程
     * @param  userschedule3 (用户id,日期,用户姓名,每天的日程配置)
     * @return 结果
     */
    int setNext(Userschedule userschedule3);
    /**
     * 根据id和时间查询当前日程的timeconfig
     * @param  userid scdedledate (用户id,日期)
     * @return 结果
     */
    String usertimeconfig(@Param("userid")String userid,@Param("scheduledate") String scheduledate);
    /**
     *
     */
    String getUserName(@Param("id")String id);
}
